#!/usr/bin/env bash
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
unset color_prompt force_color_prompt

if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

alias ..='cd ..'
alias ...='cd ../..'
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias ws='cd /workdir'

####################################################################################################
export BEV_INTEG_REPO="https://gitlab.geniie.net/BEVS3CDC/dn-bevs3-cdc/dn-cdc-integ-agent.git"
export BEV_INTEG_REPO_PATH="/workdir/dn-cdc-integ-agent"

init-tool() {
  if [[ -e ${BEV_INTEG_REPO_PATH}/.git ]]; then 
    git -C ${BEV_INTEG_REPO_PATH} reset --hard HEAD >/dev/null 2>&1 || echo "Faile to git reset."
    git -C ${BEV_INTEG_REPO_PATH} clean -df >/dev/null 2>&1|| echo "Faile to git clean."
    git -C ${BEV_INTEG_REPO_PATH} pull >/dev/null 2>&1|| echo "Faile to git pull."
  else
    git clone --progress ${BEV_INTEG_REPO} ${BEV_INTEG_REPO_PATH} 2>/dev/null || echo "Faile to git clone."
  fi

  [ -d /workdir/downloads ] || mkdir /workdir/downloads
  [ -d /workdir/.vscode ] || mkdir /workdir/.vscode
  [ -e /workdir/.vscode/settings.json ] || tee -a /workdir/.vscode/settings.json <<EOF >/dev/null
{
    "files.exclude": {
        ".repo": true,
        ".vscode-server": true,
        "bsp": true,
        "downloads": true,
        "dn-cdc-integ-agent": true,
        "sstate-cache": true,
        "build-sim-cdc": true,
        "build-qcom-cdc": true,
    }
}
EOF
}

init-build-x86() {
  if [[ $(pwd) != "/workdir" ]]; then 
    cd /workdir
  fi
  init-tool
  ./dn-cdc-integ-agent/yocto_build.sh x86 ${1:-debug} ${2:-master}
}

init-build-sa8255p() {
  if [[ $(pwd) != "/workdir" ]]; then 
    cd /workdir
  fi
  init-tool
  ./dn-cdc-integ-agent/yocto_build.sh sa8255p ${1:-debug} ${2:-master}
}

####################################################################################################
clear
echo 'USAGE:'
echo '  init-build-x86 <debug|release|product> [branch]:     build sdk and image for x86 (default branch master).'
echo '  init-build-sa8255p <debug|release|product> [branch]: build sdk and image for sa8255p (default branch master).'
echo '----------------------------------------------------------------------------------------------------------'
echo '  bitbakeで個別のパッケージをビルド:'
echo '    上記のコマンドでビルドを開始した後、ビルドログ(Parsing recipes:  10% |###)が表示されたら、'
echo '    Ctrl+Cを押して停止し、以下の手順に従って個別のパッケージをビルドします。'
echo '    1) ローカルの bb ファイルを変更する。'  
echo '    2) x86またはqcom環境をロードする。'
echo '       2.1)x86環境:     source build-sim-cdc/setup-build-env '
echo '       2.2)sa8255p環境: source build-qcom-cdc/setup-build-env'
echo '    3) 前回の生成物を削除する。 '
echo '    4) ビルド実行'
echo '    例えば、下記のコマンドを使用して、x86 環境で パッケージ「dn-cdc-hal-wifi」 をビルドします。'
echo '    $ vim /workdir/meta-dn-cdc/meta-dn-cdc/recipes-hal/dn-cdc-hal-wifi/dn-cdc-hal-wifi_1.0.0.bb'
echo '    $ source build-sim-cdc/setup-build-env'  
echo '    $ bitbake -c cleansstate dn-cdc-hal-wifi'
echo '    $ bitbake dn-cdc-hal-wif'